<style lang="less">
@import "./login.less";
</style>

<template>
    <div class="login" @keydown.enter="handleSubmit">
        <div class="login-con">
            <Card :bordered="false">
                <p slot="title">
                    <Icon type="log-in"></Icon>
                    欢迎登录
                </p>
                <div class="form-con">
                    <Form ref="loginForm" :model="form" :rules="rules">
                        <FormItem prop="account">
                            <Input v-model="form.account" placeholder="请输入用户名">
                                <span slot="prepend">
                                    <Icon :size="16" type="person"></Icon>
                                </span>
                            </Input>
                        </FormItem>
                        <FormItem prop="password">
                            <Input type="password" v-model="form.password" placeholder="请输入密码">
                                <span slot="prepend">
                                    <Icon :size="14" type="locked"></Icon>
                                </span>
                            </Input>
                        </FormItem>
                        <FormItem>
                            <Button @click="handleSubmit" type="primary" long :loading="loading">登录</Button>
                        </FormItem>
                    </Form>
                    <p class="login-tip">输入任意用户名和密码即可</p>
                </div>
            </Card>
        </div>
    </div>
</template>

<script>
import Cookies from "js-cookie";
import Avator from "@/assets/user.png";
import Util from '@/libs/util';
export default {
  data() {
    return {
      form: {
        account: "admin",
        password: "123456"
      },
      loading: false,
      rules: {
        account: [{ required: true, message: "账号不能为空", trigger: "blur" }],
        password: [{ required: true, message: "密码不能为空", trigger: "blur" }]
      }
    };
  },
  methods: {
    handleSubmit() {
      this.$refs.loginForm.validate(valid => {
        if (valid) {
          this.loading = true;
          this.$store.dispatch("DoLogin", this.form).then(response => {
            if (response) {
              const { data, httpCode } = response;
              if (httpCode == 200) {
                const { token, sysUser, hasPermissions } = data;
                Cookies.set("loozb_token", token);
                localStorage.avatorPath = sysUser.avatar;
                localStorage.username = sysUser.username;
                localStorage.userId = sysUser.id;
                localStorage.permission = JSON.stringify(hasPermissions);

                //建立连接
                // Util.createSocket(sysUser.id)

                this.$store.commit('SET_USER', sysUser) //设置登录用户
                this.$store.commit('SET_PERMISSION', hasPermissions)　　//设置权限信息
                //更新菜单
                this.$store.commit('DoUpdateMenu', hasPermissions);
                //跳转到首页
                this.$router.push({
                  name: "home_index"
                });
              }
            }
            this.loading = false;
          });
        }
      });
    }
  }
};
</script>
